#ifndef __LIBLIST_H__
#define __LIBLIST_H__

#include <stdlib.h>
#include <stdio.h>

typedef struct nodo_ nodo;

struct nodo_{
    nodo *sig;
    nodo *ant;
    void *datos;
};

typedef nodo *lista;


void crear_lista(lista *l);
int insertar_nodo(lista *l, void *d);
void borrar_nodo(lista* l, void *d, int(*compare_to)(void *, void *),void(*vacia_nodo)(void *));
void vaciar_lista(lista *l,void(*vacia_nodo)(void *) );
void mostrar_nodos(lista *l,void *d,int(*compare_to)(void *, void *), void(*mostrar_nodo)(void *));
void mostrar_lista(lista *l, void(*mostrar_nodo)(void *));
void * get_datos(nodo *n);
nodo * get_nodo_lista(lista *l,void *d,int(*compare_to)(void *, void *));
nodo * get_ultimo(lista *l);
nodo * siguiente(nodo * n);
nodo * anterior(nodo * n);

#endif
